package com.dalin.system.controller;

import com.dalin.framework.BaseController;
import com.dalin.framework.util.StringUtil;
import com.dalin.framework.vos.ResResult;
import com.dalin.system.pojo.entity.SystemUserEntity;
import com.dalin.system.pojo.request.SystemUserRequest;
import com.dalin.system.service.SystemUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/******************************************************************************
 * @Desc    : 用户管理控制器，提供数据库管理相关的API接口。
 * @author  : najianlin
 * @date    : 2024-11-23 16:13
 * @version : 1.0
 *****************************************************************************/
@RestController
@RequestMapping("/api/systemUser")
@CrossOrigin(origins = "*")
public class SystemUserController extends BaseController {
    @Autowired
    private SystemUserService systemUserService;

    /**************************************************************************
     * 分页查询数据库管理信息。
     *
     * @param req 请求参数对象，包含分页及筛选条件等。
     * @return 返回包含分页数据的结果对象。
     * @throws Exception 抛出异常。
     * @author najianlin
     * @date 2024-11-23 16:13
     */
    @PostMapping("/listPage")
    public ResResult listPageSystemUsers(@RequestBody SystemUserRequest req) throws Exception {
        log.info("分页查询信息 by params==="+req);
        return systemUserService.listPageSystemUsers(req);
    }

    /**************************************************************************
     * 根据ID删除数据库管理信息。
     *
     * @param id 要删除的数据的主键ID。
     * @return 如果删除成功则返回"success"。
     * @author najianlin
     * @date 2024-11-23 16:13
     */
    @DeleteMapping("/delete/{id}")
    public String deleteSystemUser(@PathVariable Long id) {
        System.out.println("根据ID删除数据库管理信息 by id==="+ id);
        systemUserService.deleteSystemUser(id);
        return "success";
    }

    /**************************************************************************
     * 批量删除数据库管理信息。
     *
     * @param ids 要删除的数据的主键ID列表。
     * @return 如果删除成功则返回"success"。
     * @author najianlin
     * @date 2024-11-23 16:13
     */
    @PostMapping("/deleteByIds")
    public String deleteSystemUsersByIds(@RequestBody List<String> ids) {
        System.out.println("批量删除数据库管理信息 by ids==="+ ids);
        systemUserService.deleteSystemUsers(ids);
        return "success";
    }

    /**************************************************************************
     * 添加或更新数据库管理信息。
     *
     * @param systemUser 数据库管理实体对象，包含要添加或更新的信息。
     * @return 操作成功后返回"success"。
     * @throws Exception 如果操作过程中出现异常，则抛出。
     * @author najianlin
     * @date 2024-11-23 16:13
     */
    @PostMapping("/addOrUpdate")
    public String addOrUpdateSystemUser(@RequestBody SystemUserEntity systemUser) throws Exception {
        StringUtil.printValues(systemUser);
        systemUserService.addOrUpdateSystemUser(systemUser);
        return "success";
    }

}